文章目录
  1. 1. CentOS 6.0安装配置subversion

CentOS 6.0安装配置subversion

CentOS 6.0安装配置subversion  

\

2011-11-18 20:35:06|  分类: CVS |举报|字号 订阅

环境:

a. 系统为centos 6.0

b. 分为svn协议和http协议方式

c. 使用svnadduser同时更新svn协议的密码文件和http协议的密码文件

\

1. 安装

\

# 安装subversion  

yum install subversion  

# 安装apache  

yum groupinstall   

# 安装mod_dav_svn模块  

yum install mod_dav_svn 

“Web Server”组中包含httpd的安装包

\

2. 配置apache

\

vi /etc/httpd/conf/httpd.conf  

# 设置监听地址  

Listen 192.168.1.11:8080  

# 设置ServerName  

ServerName 192.168.1.11:8080 

3. 建立Svn

\

mkdir -p /data/subversion  

cd /data/subversion  

svnadmin create shell  

chown -R apache:apache shell  

# 权限文件和认证文件都放在以下目录  

mkdir /data/subversion/conf 

一定要改变所创建的Svn目录的拥有者为Web服务器运行的用户,否则出现不能写入这些权限错误,这里为apache

\

4. 使用svn协议

\

a. 编辑svn项目的配置文件,这个文件在用svnadmin创建的目录的conf子目录下

\

vi /data/subversion/shell/conf/svnserve.conf  

# 匿名用户不能访问,认证用户具有写权限  

anon-access = none 

auth-access = write 

# 设置权限和密码文件  

password-db = /data/subversion/conf/passwd  

authz-db = /data/subversion/conf/authz  

# 认证登陆提示信息  

realm = linuxjcq shell 

b. 创建权限文件和用户名文件

\

cd /data/subversion/conf  

# 配置权限:  

vi authz  

# 添加组,可以根据项目需要分成管理员组,只读组,也可以按具体的子目录来分组,进行权限控制  

# 组成员用逗号分隔  

[groups]  

admin = jcq 

 

# 我想/data/subversion所有项目的svn库都使用同样的权限,所以使用[/path/to/access]的形式,如果想对具体项目进行权限控制可以使用[项目名:/path/to/access]  

[/]  

admin = rw 

* = 

# 配置用户名和密码  

vi passwd  

jcq = xxxxxx 

…… 

c. 将svn添加为服务

\

vi /etc/sysconfig/subversion  

# 文件中为启动要加的选项  

OPTIONS=”–listen-host 192.168.1.11 –listen-port 3690 -r /data/subversion -d” 

vi /etc/rc.d/init.d/svnserve  

#!/bin/bash  

#  

# /etc/rc.d/init.d/subversion  

#  

# Starts the Subversion Daemon  

#  

# chkconfig: 2345 90 10  

# description: Subversion Daemon  

 

# processname: svnserve  

 

source /etc/rc.d/init.d/functions  

 

[ -x /usr/bin/svnserve ] || exit 1  

 

### Default variables  

SYSCONFIG=”/etc/sysconfig/subversion” 

 

### Read configuration  

[ -r “$SYSCONFIG” ] && source “$SYSCONFIG”  

 

RETVAL=0 

prog=”svnserve” 

desc=”Subversion Daemon” 

 

start() {  

echo -n $“Starting $desc ($prog): “  

daemon $prog $OPTIONS  

RETVAL=$?  

[ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog  

echo  

}  

 

stop() {  

echo -n $“Shutting down $desc ($prog): “  

killproc $prog  

RETVAL=$?  

[ $RETVAL -eq 0 ] && success || failure  

echo  

[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog  

return $RETVAL  

}  

 

case “$1” in  

start)  

start  

;;  

stop)  

stop  

;;  

restart)  

stop  

start  

RETVAL=$?  

;;  

condrestart)  

[ -e /var/lock/subsys/$prog ] && restart  

RETVAL=$?  

;;  

*)  

echo $“Usage: $0 { start|stop|restart|condrestart }”  

RETVAL=1 

esac  

 

exit $RETVAL 

chmod 0755 /etc/rc.d/init.d/svnserve  

chkconfig –add svnserve  

service svnserve start 

也可以直接手动启动,例如:svnserve –listen-host 192.168.1.11
–listen-port 3690 -r /data/subversion -d

编辑/etc/rc.d/rc.local文件中加入这个启动命令

\

5. 使用http协议

\

a. 配置

\

vi /etc/httpd/conf.d/subversion.conf  

# 确认这两行的存在  

LoadModule dav_svn_module modules/mod_dav_svn.so  

LoadModule authz_svn_module modules/mod_authz_svn.so  

 

# 配置svn仓库  

<Location /subversion> 

DAV svn   

SVNParentPath /data/subversion  

 

<LimitExcept GET PROPFIND OPTIONS REPORT> 

AuthzSVNAccessFile /data/subversion/conf/authz  

AuthType Basic  

AuthName “Authorization Realm”  

AuthUserFile /data/subversion/conf/htpasswd.users  

Require valie-user  

</LimitExcept> 

</Location> 

b. 创建认证的文档,相当于使用svn协议时的passwd

\

htpasswd -cm /data/subversion/conf/htpasswd.users jcq  

New password:   

Re-type new password: 

开始时你要利用 -cm 这个选项。它会创建文件并用 MD5
将口令加密。如果你需要加用户,请确定你只使用 -m
选项,而不包含初次创建时的 -c。

\

c. 创建权限文件

\

vi /data/subversion/conf/authz  

# 添加组,可以根据项目需要分成管理员组,只读组,也可以按具体的子目录来分组,进行权限控制  

# 组成员用逗号分隔  

[groups]  

admin = jcq   

 

# 我想/data/subversion所有项目的svn库都使用同样的权限,所以使用[/path/to/access]的形式,如果想对具体项目进行权限控制可以使用[项目名:/path/to/access]  

[/]  

admin = rw 

* = 

\

我的svn协议和http协议使用相同的权限控制文件

\

d. 启动apache

\

service httpd start 

 

\

 

\

 

\

svnmanager安装配置

\

 

\

说明:系统为CentOS 6.0,svn的配置和安装见前面一篇文章

1. 安装php和必要的软件包

\

yum groupinstall “PHP Support”  

yum install php-mysql php-mbstring  

# 安装VersionControl_SVN  

/usr/bin/pear install -f –alldeps VersionControl_SVN 

  1. 修改Svn父目录的权限:让apache对所有的svn目录和conf配置文件目录拥有控制权限

\

chown -R apache.apache /data/subversion 

  1. 去官网下载svnmanager:http://svnmanager.[sourceforge.net/并解压](http://sourceforge.net/%E5%B9%B6%E8%A7%A3%E5%8E%8B)

\

wget http://nchc.dl.sourceforge.net/project/svnmanager/svnmanager/1.08/svnmanager-1.08.tar.gz -P /usr/local/src  

tar zxvf /usr/local/src/svnmanager-1.08.tar.gz -C /var/www/html/  

cd /var/www/html  

mv svnmanager-1.08 svnmanager && chown -R apache.apache svnmanager  

4. 配置apache

\

vi /etc/httpd/conf.d/svnmanager.conf  

<Location “/var/www/html/svnmanager/“> 

Order deny,allow  

Deny from all  

Allow from all  

</Location> 

5. 创建数据库

\

mysql -uroot -p  

> create database subversion;  

> grant all on subversion.* to subversion ‘192.168.1.10’ identified by ‘xxxxxx’; 

6. 编辑配置文件

\

cd /var/www/html/svnmanager  

cp config.php.linux config.php  

vi config.php  

# 设置语言  

$lang = “zh_CN.utf8”;  

# 设置二进制文件的位置  

$htpassword_cmd = “/usr/bin/htpasswd”;  

$svn_cmd = “/usr/bin/svn”;  

$svnadmin_cmd = “/usr/bin/svnadmin”;  

# 设置Svn配置文件目录,Svn的父目录,Svn的http方式的认证文件,权限控制文件  

$svn_config_dir = “/data/subversion/conf”;  

$svn_repos_loc = “/data/subversion”;  

$svn_passwd_file = “/data/subversion/conf/htpasswd.users”;  

$svn_access_file = “/data/subversion/conf/authz”;  

# 设置svn协议密码文件的位置  

$svnserve_user_file=”/data/subversion/conf/passwd”;  

# 设置mysql数据连接  

$dsn = “mysqli://subversion:password 192.168.1.10/subversion”; 

7. 重启启动apache,访问svnmanager

\

service httpd restart 

访问http://servername:port/svnmanager,会自动建svn的数据表,第一次登陆的用户名和密码都为admin,登陆后新建一个管理员用户,admin在第一次登陆后注销会为不可用

8. 汉化

解压,覆盖到主目录的svnmanager子目录的文件即可

文章目录
  1. 1. CentOS 6.0安装配置subversion